package utilitarios;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

import utilitarios.Usuario;

public class Arq {
	
	public static void escreveArquivoMusicas(String nomeArquivo, List<Musica> musicas) throws IOException{
		
		ObjectOutputStream arquivo = null;
		try{
			arquivo = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(nomeArquivo)));
			arquivo.writeObject(musicas);
		}catch(Exception e){
			System.err.println(e.getMessage());
		}finally{
			if (arquivo != null) arquivo.close();
		}
	}
	
	public static void escreveArquivoUsuarios(String nomeArquivo, List<Usuario> usuarios) throws IOException{
		
		ObjectOutputStream arquivo = null;
		try{
			arquivo = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(nomeArquivo)));
			arquivo.writeObject(usuarios);
		}catch(Exception e){
			System.err.println(e.getMessage());
		}finally{
			if (arquivo != null) arquivo.close();
		}
	}
	
	public static ArrayList<Musica> leArquivoMusicas(String arquivoMusicas){
		List<Musica> musicas = new ArrayList<Musica>();
		
		ObjectInputStream arquivo = null;
		try{
			arquivo = new ObjectInputStream( new BufferedInputStream( new FileInputStream(arquivoMusicas)));
			musicas = (ArrayList<Musica>) arquivo.readObject();
			System.out.println(musicas);
			return (ArrayList<Musica>) musicas;
			
		}catch(Exception e){
			System.err.println(e.getMessage());
		}finally{
			if (arquivo != null) {
				try{
					arquivo.close();
				}
				catch(Exception e){
					System.out.println(e.getMessage());
				}
			}
				
		}
		return (ArrayList<Musica>) musicas;
		
	}
	
	public static ArrayList<Usuario> leArquivoUsuarios(String arquivoUsuarios) throws IOException{
		List<Usuario> usuarios = new ArrayList<Usuario>();
		
		ObjectInputStream arquivo = null;
		try{
			arquivo = new ObjectInputStream( new BufferedInputStream( new FileInputStream(arquivoUsuarios)));
			usuarios = (ArrayList<Usuario>) arquivo.readObject();
			System.out.println(usuarios);
			return (ArrayList<Usuario>) usuarios;
			
		}catch(Exception e){
			System.err.println(e.getMessage());
		}finally{
			if (arquivo != null) {
				try{
					arquivo.close();
				}
				catch(Exception e){
					System.out.println(e.getMessage());
				}
			}
		}
		return (ArrayList<Usuario>) usuarios;
		
	}
}
